【小ネタ】AWS CLI を使用した KMS キーのアクセス許可状況の確認方法

【小ネタ】AWS CLI を使用した KMS キーのアクセス許可状況の確認方法

Clock Icon2024.08.17

はじめに

テクニカルサポートの 片方 です。
KMS(AWS Key Management Service)では様々なアクセス許可のパターンや認可条件がございます。
そのため、KMS(AWS Key Management Service)が関係するお問い合わせがある際に、対象 KMS キーのアクセス許可がされているかの判断有無は大変です。

その様な場合には、AWS CLI コマンドを利用することで、対象 KMS キーの呼び出しが成功するかどうかを確認可能です。

やってみた

以下ドキュメントを参考にやってみました。
簡単に説明すると、該当 KMS キーのアクセス許可をテストするため、API リクエストの際、"--dry-run" を指定することで、KMS キーのアクセス許可状況を確認可能です。

https://docs.aws.amazon.com/ja_jp/kms/latest/developerguide/programming-dryrun.html#dryrun-api

メッセージには次の例外が含まれます。
・DryRunOperationException ‐ DryRun が指定されていなければリクエストは成功します。
・ValidationException ‐ 間違った API パラメータが指定されたためリクエストが失敗しました。
・AccessDeniedException ‐ KMS リソースで指定された API アクションを実行するアクセス許可がありません。

AWS CLI サンプルコマンド
 aws kms create-grant \
    --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \
    --grantee-principal arn:aws:iam::111122223333:role/keyUserRole \
    --operations Decrypt \
    --dry-run

失敗時

※ 一部マスクします

An error occurred (AccessDeniedException) when calling the CreateGrant operation: User: arn:aws:sts::123456789012:assumed-role/AmazonSSMManagedInstanceCore/i-0448983f5ef5edb4d is not authorized to perform: kms:CreateGrant on resource: arn:aws:kms:ap-northeast-1:123456789012:key/aaaabbbb-xxxx-xxxx-1234-5678xxxxxxxx because no identity-based policy allows the kms:CreateGrant action

成功時

対象ロールへ、kms:CreateGrant アクションを許可します。

An error occurred (DryRunOperationException) when calling the CreateGrant operation: The request would have succeeded, but the DryRun option is set.

DryRunOperationException であるため、DryRun オプションを使用しなければ成功することを確認できました。

参考資料

アノテーション株式会社について

アノテーション株式会社は、クラスメソッド社のグループ企業として「オペレーション・エクセレンス」を担える企業を目指してチャレンジを続けています。「らしく働く、らしく生きる」のスローガンを掲げ、様々な背景をもつ多様なメンバーが自由度の高い働き方を通してお客様へサービスを提供し続けてきました。現在当社では一緒に会社を盛り上げていただけるメンバーを募集中です。少しでもご興味あれば、アノテーション株式会社WEBサイトをご覧ください。

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.